Trellys: Dependently-typed Language Design
نویسنده
چکیده
My research focuses on the design of statically-typed programming languages. Static type systems are a popular, cost-effective form of lightweight program verification. They provide a tractable and modular way for programmers to express properties that can be mechanically checked by the compiler. As a result, the compiler can rule out a wide variety of errors and provide more information to refactoring and development tools. For example, systems written with type-safe languages cannot be compromised by buffer overruns if all array accesses are statically proven safe. Furthermore, programmers can modify their code with the assurance that they have not violated critical safety properties. I explore these designs in the context of functional programming languages, such as Haskell and ML. Functional programming languages are an ideal context for type system research; they excel in their capabilities for static reasoning. However, there is need for improvement. Some programming idioms must be ruled out simply because they cannot be shown to be sound by existing type systems. To overcome these limitations, my work investigates type system features in the context of both new languages and existing ones, and evaluates those designs with respect to both theory and practice.
منابع مشابه
Step-Indexed Normalization for a Language with General Recursion
The TRELLYS project has produced several designs for practical dependently typed languages. These languages are broken into two fragments—a logical fragment where every term normalizes and which is consistent when interpreted as a logic, and a programmatic fragment with general recursion and other convenient but unsound features. In this paper, we present a small example language in this style....
متن کاملCombining Proofs and Programs
Programming languages based on dependent type theory promise two great advances: flexibility and security. With the type-level computation afforded by dependent types, algorithms can be more generic, as the type system can express flexible interfaces via programming. Likewise, type-level computation can also express data structure invariants, so that programs can be proved correct through type ...
متن کاملDependent Types: Easy as PIE Work-In-Progress Project Description
Dependent type systems allow for a rich set of program properties to be expressed and mechanically verified via type checking. However, despite their significant expressive power, dependent types have not yet advanced into mainstream programming languages. We believe the reason behind this omission is the large design space for dependently typed functional programming languages, and the consequ...
متن کاملDependent Types: Easy as PIE
Dependent type systems allow for a rich set of program properties to be expressed and mechanically verified via type checking. However, despite their significant expressive power, dependent types have not yet advanced into mainstream programming languages. We believe the reason behind this omission is the large design space for dependently typed functional programming languages, and the consequ...
متن کاملProgramming Up to Congruence (Extended version)
This paper presents the design of ZOMBIE, a dependently-typedprogramming language that uses an adaptation of a congruenceclosure algorithm for proof and type inference. This algorithm al-lows the type checker to automatically use equality assumptionsfrom the context when reasoning about equality. Most dependently-typed languages automatically use equalities that follow from ...
متن کامل